package com.dxf.chepter08

/**
 * 扫描:
 *  对某个集合的所有元素做fold操作,但是会把产生的所有中间结果放置于一个集合中保存
 *
 *
 *
 *
 *
 *
 */
object T98_扫描 {


  def main(args: Array[String]): Unit = {

    def minus(n1: Int, n2: Int): Int = {
      n1 - n2
    }

    //5 (1,2,3,4,5)   -->   ( 5,4,2,-1,-5,-10)
    //和折叠不同的是第一个参数会在集合中
    val i8 = (1 to 5).scanLeft(5)(minus _) // Vector(5, 4, 2, -1, -5, -10)
    println(i8)


    def add(n1: Int, n2: Int): Int = {
      n1 + n2
    }

    //5 (1,2,3,4,5)  -->  (5,6,8,11,15,20) --> (5,(5+1),((5+1)+2),(((5+1)+2)+3))
    val i9 = (1 to 5).scanLeft(5)(add _)
    println(i9)


  }


}

